创建时间: | 2016/8/17 12:06 |
来源: | http://geekblog.zhaoyan.me/mongoose-%e5%bb%ba%e7%ab%8b%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5/ |
mongooose is a mongodb object modeling for node.js
mongoose有两个连接数据库的方式(官方介绍):
var dbURL = 'mongodb://localhost/mydatabase'; mongoose.connect(dbURL);
一般来说,推荐在程序开始的时候,就建立建立,只有停止程序或者程序出现问题被迫中止的时候,才关掉或者重启连接
当然如果你只有一个数据库,用同样的用户权限登录,上面那个最简单的建立方式,是非常适合使用的。但是在很多时候,你会有多个数据或者不同的权限的账户连接。这个时候,你就需要建立多个数据库连接。
var dbURL = 'mogodb://localhost/myadminDatabase'; var adminConnection= mongoose.createConnection(dbURL);
之前提到了connection string – dbURL,其实connection string有很多不同的配置,这里简单的做一个介绍
– Port
var dbURL = 'mongodb://localhost:27018/mydatabase';
– User
var dbURL = 'mongodb://username:password@localhost/mydatabse';
或者你也可以
var dbURL = 'mogodb://localhost/myadminDatabase'; var dbOptions = {'user':'db_user','pass':'db_password'}; mongoose.connect(dbURL,dbOptions);
mogoose.connection.close(function(){ console.log('connection closed'); }); adminConnection.close(function(){ console.log('connection closed'); });
当程序停止之后自动关闭连接
process.on('SIGINT', function() { mongoose.connection.close(function () { console.log('Mongoose disconnected through app termination'); process.exit(0); }); });
如何catch error
mongoose.connection.on('error',function (err) { console.log('Mongoose connection error: ' + err); });
在我们知道了如何大家连接,如何关闭连接,如何catch error,我们这里把之前的东西综合起来,看如何在一个新project中更好的建立mongoose的结构
首先,建立一个/model/db.js文件,加入下面代码
var mongoose = require( 'mongoose' ); // Build the connection string var dbURI = 'mongodb://localhost/MongoosePM'; // Create the database connection mongoose.connect(dbURI); mongoose.connection.on('connected', function () { console.log('Mongoose connected to ' + dbURI); }); mongoose.connection.on('error',function (err) { console.log('Mongoose connection error: ' + err); }); mongoose.connection.on('disconnected', function () { console.log('Mongoose disconnected'); }); process.on('SIGINT', function() { mongoose.connection.close(function () { console.log('Mongoose disconnected through app termination'); process.exit(0); }); });
在project start的时候打开连接,在app.js 或者server.js当中加入
db = require('./model/db')